package lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * JDK8之后推出了一个特性 ：lambda表达式
 * lambda表达式可以使用更简洁的语法去创建匿名内部类
 * 语法要求：
 */
public class LambdaDemo {
    public static void main(String[] args) {
        //使用匿名内部类定义一个过滤器
        FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File file) {

                return file.getName().contains("F");
            }
        };
        //使用lanbda 简化使用
        //省去了接口名和方法名 参数名称也可以省略
        FileFilter filter1 = (file) -> {
            return file.getName().contains("D");
        };
        //最简版 如果方法体只有一句代码时3
        //{}和return也可以删除

        FileFilter filter2 = (file) -> file.getName().contains("A");
        //如果只有一个参数，那么参数列表（）也可以不写
        FileFilter filter3 = f -> f.getName().contains("d");
        //简洁版
        File dir = new File("。");
        File [] sub =dir.listFiles(f->f.getName().contains("a"));
    }
}
